import Vue from "vue";
import App from "./App.vue";
import Router from "vue-router";
import router from "./router/index"; // 路由
import {beforeRouter} from "./router/index"; // 路由拦截
import store from "./store";
import 'babel-polyfill' // 解决ie兼容问题
import ViewUI from 'view-design';
import 'view-design/dist/styles/iview.css';
import "./css/public.less"; // 公共css样式

/*复制到剪切板插件*/
import VueClipboard from 'vue-clipboard2'
Vue.use(VueClipboard)
/*复制到剪切板插件 end*/

Vue.use(ViewUI);
// 工具
import {backPage, isNotNull, isBlank} from "./config/util";
// 配置文件
import {indexPage, loginPage, imgSrc} from "./config/config";
// 接口请求拦截
import {baseUrl} from "./api/api.request";
// 引入mock文件
// require('./mock/index') // mock 方式，正式发布时，注释掉该处即可

Vue.prototype.$backPage = backPage
Vue.prototype.$isNotNull = isNotNull
Vue.prototype.$isBlank = isBlank
Vue.prototype.$indexPage = indexPage
Vue.prototype.$loginPage = loginPage
// 图片保存地址
Vue.prototype.$imgSrc = imgSrc
// 接口地址
Vue.prototype.$baseUrl = baseUrl

// 解决跳转同一个路由报错
const originalPush = Router.prototype.push
Router.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}
// 路由跳转前事件
router.beforeEach((to, from, next) => {
    beforeRouter(to, from, next)
})
// 路由切换 滚到到顶部
router.afterEach((to, from, next) => {
    window.scrollTo(0, 0);
    if(to.name !== loginPage){
        // 如果不是登录页 内容区域滚动到顶部
        Vue.nextTick(() => {
            if(document.getElementById('main_content')) {
                document.getElementById('main_content').scrollTo(0, 0);
            }
        })
    }
})

Vue.config.productionTip = false;

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount("#app");
